import random

def additionsaufgabe(min=0, max=100):

    z1 = random.randint(min, max)
    z2 = random.randint(min, max)

    frage = "%s + %s = " % (z1, z2)
    ergebnis = "%s" % (z1 + z2)
    antwortsatz = frage + ergebnis

    return (frage, ergebnis, antwortsatz)

def multiplikationsaufgabe(min=0, max=10):

    z1 = random.randint(min, max)
    z2 = random.randint(min, max)

    frage = "%s * %s = " % (z1, z2)
    ergebnis = "%s" % (z1 * z2)
    antwortsatz = frage + ergebnis

    return (frage, ergebnis, antwortsatz)

aufgaben = {'a': additionsaufgabe,
            'm': multiplikationsaufgabe,
            }

def auswahl():
    eingabe = raw_input("\nAdditionsaufgabe [A] oder Multiplikationsaufgabe [m]? ")
    return aufgaben.get(eingabe, additionsaufgabe)

def trainer():
    fertig = False
    while not fertig:
        aufgabe = auswahl()
        frage, ergebnis, antwortsatz = aufgabe()
        antwort = raw_input("\n"+frage)
        if antwort == ergebnis:
            print "\nRichtig! ", antwortsatz
        else:
            print "\nFalsch! ", antwortsatz
            
        nochmal = raw_input("\nNochmal? (J/n)")
        if nochmal.lower() == 'n':
            fertig = True

if __name__ == "__main__":
    trainer()

